//
// Created by wangwanlong on 2024/6/17.
//

#ifndef MCGPP_COARSENING_MEMENTO_H
#define MCGPP_COARSENING_MEMENTO_H
#include "graph.h"
namespace mcgpp{

  class CoarseningMemento {
  public:
    explicit CoarseningMemento(const Memento& contraction_memento_) :
            one_pin_es_begin(0),
            one_pin_es_size(0),
            parallel_es_begin(0),
            parallel_es_size(0),
            contraction_memento(contraction_memento_) { }

    int one_pin_es_begin;        // start of removed single pin hyperedges
    int one_pin_es_size;         // # removed single pin hyperedges
    int parallel_es_begin;       // start of removed parallel hyperedges
    int parallel_es_size;        // # removed parallel hyperedges
    const Memento contraction_memento;//{u,v}
  };
}
#endif //MCGPP_COARSENING_MEMENTO_H
